Semiconductor memory devices have become more popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Flash memory is among the most popular non-volatile semiconductor memories.
Some non-volatile memory devices are used to store two ranges of charges and, therefore, the memory cells can be programmed/erased between two data states: an erased state and a programmed state (corresponding to data “1” and data “0”). Such a device is referred to as a binary device or a single-level cell (SLC) and the data is binary data.
A multi-state flash memory cell (storing multi-state data) is implemented by identifying multiple, distinct allowed threshold voltage ranges (ie data states). Each distinct threshold voltage range corresponds to a predetermined value for the set of data bits. For example, some memory cells can store two bits, and others can store three bits. The specific relationship between the data programmed into the memory cell and the threshold voltage ranges (also called data states) of the memory cell depends upon the data encoding scheme adopted for the memory cells. For example, U.S. Pat. No. 6,222,762 and U.S. Patent Application Publication No. 2004/0255090, both describe various data encoding schemes for multi-state flash memory cells.
In addition to the gains in capacity resulting from multi-state memory architectures, consumers have seen significant advantages as a result of a history of steadily scaling down the physical dimensions of memory cells. Smaller memory cells can be packed more densely on a given die area, allowing the user to access more memory capacity for the same price as an older memory technology. However, scaling the sizes of memory cells entails certain risks. In order to achieve the advantage of higher memory capacity for a fixed die size, these smaller memory cells must be packed more closely together. Doing so, however, may result in a greater number of manufacturing defects, such as shorting between adjacent word lines, shorting between word lines and interconnects, shorting between word lines and the substrate, broken word lines, etc. Such defects often result in corruption of data stored on the word lines being programmed and nearby word lines. In some cases, these defects are not realized during tests conducted by manufacturers prior to packaging and shipping. Rather, these defects only begin to corrupt data after programming and erasing is performed by the user.
Prior systems have sought to combat latent manufacturing defects by reading programmed data after programming or evaluating performance after completing programming. However, by the time programming has completed, the programming process may have already damaged data being stored in other nearby memory cells.